home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Windows Game Programming for Dummies (2nd Edition)
/
WinGamProgFD.iso
/
mac
/
DirectX SDK
/
DXSDK
/
samples
/
Multimedia
/
DirectSound
/
Play3DSound
/
readme.txt
< prev
next >
Wrap
Text File
|
2001-10-10
|
3KB
|
75 lines
//-----------------------------------------------------------------------------
//
// Sample Name: Play3DSound Sample
//
// Copyright (c) 1999-2001 Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
Description
===========
The Play3DSound sample shows how to create a 3-D sound buffer and
manipulate its properties. It is similar to the 3DAudio sample but does not
use an audiopath.
Path
====
Source: DXSDK\Samples\Multimedia\DSound\Play3DSound
Executable: DXSDK\Samples\Multimedia\DSound\Bin
User's Guide
============
Click Segment File and load a wave, MIDI, or DirectMusic Producer segment
file. Play the segment. The position of the sound source is shown as a
red dot on the graph, where the x-axis is from left to right and the z-axis
is from bottom to top. Change the range of movement on the two axes by using
the sliders.
The listener is located at the center of the graph, and has its default
orientation, looking along the positive z-axis; that is, toward the top of
the screen. The sound source moves to the listener's left and right and to
the listener's front and rear, but does not move above and below the listener.
The sliders in the center of the window control the properties of the
listener; that is, the global sound properties. If you click Defer
Settings, changes are not applied until you click Apply Settings.
Programming Notes
=================
For a simpler example of how to setup a DirectSound buffer without a
3D positioning, see the PlaySound sample.
* To create a IDirectSound3DListener interface
1. Fill out a DSBUFFERDESC struct with
DSBCAPS_CTRL3D | DSBCAPS_PRIMARYBUFFER
2. Call IDirectSound::CreateSoundBuffer passing in the DSBUFFERDESC
This will create a primary buffer with 3D control.
3. Call IDirectSoundBuffer::QueryInterface to query for the
IDirectSound3DListener
* To create a IDirectSound3DBuffer interface
1. Fill out a DSBUFFERDESC struct with
DSBCAPS_CTRL3D and the 3D virtualization guid
2. Call IDirectSound::CreateSoundBuffer passing in the DSBUFFERDESC
This will create a secondary buffer with 3D control.
3. Call IDirectSoundBuffer::QueryInterface to query for the
IDirectSound3DBuffer
* Set the position of the listener
1. Call IDirectSound3DListener::SetAllParameters passing in
a DS3DLISTENER struct. If the DS3D_DEFERRED flag is used,
then call IDirectSound3DListener::CommitDeferredSettings
when ready.
* Set the postion of the 3D buffer
1. Call IDirectSound3DBuffer::SetAllParameters passing in a
DS3DBUFFER struct. If the DS3D_DEFERRED flag is used,
then call IDirectSound3DListener::CommitDeferredSettings
when ready.